#include "algorithmutil.h"

AlgorithmUtil::AlgorithmUtil() {}

int AlgorithmUtil::calcPos(double x, double sx, int num, double r)
{

    double dx=x-sx;
    int mx=num*2+1;
    if(dx<-r){
        return -1;
    }else if(dx>mx*r){
        return -1;
    }else{
        // 在 -r 到 2n+1 r之间
        for(int i=-1;i<=mx;i++){
            double tx=i*r;
            if(dx<tx){
                return i/2;
            }
        }
    }
    return -1;
}


//防止出界 1 上  2 下  3 左 4 右
QList<int>* AlgorithmUtil::calcMoveSide(int col, int row, int maxCol, int maxRow)
{
    QList<int>* resList=new QList<int>();
    //判断上
    if(row-1>0){
        resList->append(1);
    }
    //判断下
    if(row+1<=maxRow){
        resList->append(2);
    }
    //判断左
    if(col-1>0){
        resList->append(3);
    }
    //判断右
    if(col+1<=maxCol){
        resList->append(4);
    }
    return resList;
}












